/********************************************
*
*
*
*  test_sem.c
*
*
********************************************/


#ifdef __cplusplus
 #if __cplusplus
  extern "C"{
 #endif
#endif /* __cplusplus */


#include "test_suite.h"
#include "d_sem.h"


UINT32 TEST_DMS_SemCreate_00()
{
	CU_EQUAL(DMS_INVALID_PARAM , DMS_SemCreate(NULL));
    return DMS_OK;
}

UINT32 TEST_DMS_SemCreate_01()
{
	SemHanle sem;
	CU_EQUAL(DMS_OK , DMS_SemCreate(&sem));

    int i;
    int ulRet;

	DMS_SemV(sem);
	DMS_SemP(sem);

    for(i = 0 ; i< 10 ;i++ )
    {
        DMS_SemTryP(sem);
    }

    for(i = 0 ; i< 10 ;i++ )
    {
        ulRet = DMS_SemTimedP(sem,50);
        DMS_Show(0,"DMS_SemTimedP i= %u, ulRet = %u\r\n",i,ulRet);
    }

    return DMS_OK;
}

UINT32 TEST_DMS_SemCreate_02()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemCreate_03()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemDelete_00()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemDelete_01()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemDelete_02()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemDelete_03()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemP_00()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemP_01()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemP_02()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemP_03()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemV_00()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemV_01()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemV_02()
{

    return DMS_OK;
}

UINT32 TEST_DMS_SemV_03()
{

    return DMS_OK;
}

VOID TEST_DMS_SemCreate()
{
    CU_EQUAL(TEST_DMS_SemCreate_00(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemCreate_01(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemCreate_02(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemCreate_03(),DMS_OK);
}


VOID TEST_DMS_SemDelete()
{
    CU_EQUAL(TEST_DMS_SemDelete_00(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemDelete_01(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemDelete_02(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemDelete_03(),DMS_OK);
}


VOID TEST_DMS_SemP()
{
    CU_EQUAL(TEST_DMS_SemP_00(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemP_01(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemP_02(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemP_03(),DMS_OK);
}


VOID TEST_DMS_SemV()
{
    CU_EQUAL(TEST_DMS_SemV_00(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemV_01(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemV_02(),DMS_OK);
    CU_EQUAL(TEST_DMS_SemV_03(),DMS_OK);
}

VOID TEST_suite_sem(VOID)
{
    CU_pSuite suite;
    suite = CU_add_suite(__FUNCTION__, NULL, NULL);
    CU_ADD_TEST(suite, TEST_DMS_SemCreate);
    CU_ADD_TEST(suite, TEST_DMS_SemDelete);
    CU_ADD_TEST(suite, TEST_DMS_SemP);
    CU_ADD_TEST(suite, TEST_DMS_SemV);
}

#ifdef __cplusplus
 #if __cplusplus
  }
 #endif
#endif /* __cplusplus */
